/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.cpqd.ssar.utilitarias;

import br.com.cpqd.ssar.posprocessamento.*;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.util.Vector;
import javax.swing.DefaultComboBoxModel;

/**
 *
 * @author carlos
 */
public class ListaTipoRelatorio {

    /*
     * Lista com as fontes eletromagneticas cadastradas pelos usuarios
     */
    private Vector listaParameters;
    
    /**
     * Lista de Tipo de Relatorio
     */
    private Vector listaTipoRelatorios;
            
    /**
     * Modelo para apresentação na Combo Box
     * Guarda a lista de materiais cadastrados pelo software e pelo usuário
     */
    private DefaultComboBoxModel modelo;
    
    /**
     * Método Construtor
     * @exception IOException
     */
    public ListaTipoRelatorio() throws IOException {

        listaParameters          = new Vector();
        listaTipoRelatorios      = new Vector();
        // Attributes
        TipoRelatorio  tipoRelatorio = new TipoRelatorio();
        String str                  = null;
        String name                 = new String();
        StringTokenizer strtoken    = null;
        
        // Carrega Arquivos com o Tipo de Fontes
        String caminho              = System.getProperty("user.dir") + File.separator + "tiposderelatoriosposprocessamento.txt";
        FileInputStream inputStream = new FileInputStream(caminho);
        BufferedReader reader       = new BufferedReader(new InputStreamReader(inputStream));

            //Descarta as duas primeiras linhas de cabeçalho do arquivo
            reader.readLine();
            reader.readLine();

            modelo = new DefaultComboBoxModel();
            tipoRelatorio.setIdtipo(0);
            tipoRelatorio.setName("--- Selecionar ----");
            tipoRelatorio.setNparameters(0);
            modelo.addElement(tipoRelatorio);
            while ((str = reader.readLine()) != null) {
                // Tokens
                
                strtoken      = new StringTokenizer(str,";");
                tipoRelatorio = new TipoRelatorio();                
                tipoRelatorio.setIdtipo(Integer.valueOf(strtoken.nextToken()));
                tipoRelatorio.setTypeFDTD(strtoken.nextToken());
                tipoRelatorio.setName(strtoken.nextToken());
                //System.out.println(strtoken.nextToken());
                tipoRelatorio.setNparameters(Integer.valueOf(strtoken.nextToken()));
                //tipoRelatorio.setNparameters(0);
                
                listaParameters = new Vector();
                if (tipoRelatorio.getNparameters()>0)
                {
                    for (int i=0; i < tipoRelatorio.getNparameters(); i++)
                        listaParameters.add(strtoken.nextToken());               
                    tipoRelatorio.setParameters(listaParameters);
                }
                modelo.addElement(tipoRelatorio);    
                listaTipoRelatorios.add(tipoRelatorio);
            }        
                           
    }
    
    
    /**
     * Get the value of modelo
     * @return the value of modelo
     */
    public DefaultComboBoxModel getModelo() {
        return modelo;
    }
    
    /**
     * Retorna o TipodeRelatorio de Acordo com o nome desejado
     * @return tipo TipoRelalatorio 
     */
     public TipoRelatorio getTipoRelatorio(int id)
     {
         TipoRelatorio tipo= new TipoRelatorio();
         for (int cont=0; cont < listaTipoRelatorios.size(); cont++) {
             tipo = (TipoRelatorio) listaTipoRelatorios.get(cont);
             if (tipo.getIdtipo()==id)
                 return tipo;
         }
          return null;
     }
}
